package com.dj.mingkong.admin.biz.service.system;


import com.dj.mingkong.admin.biz.controller.system.vo.request.LoginVo;
import com.dj.mingkong.admin.biz.controller.system.vo.request.UserQueryVo;
import com.dj.mingkong.admin.biz.controller.system.vo.request.UserUpdateVo;
import com.dj.mingkong.admin.biz.controller.system.vo.response.UserInfoVo;
import com.dj.mingkong.admin.biz.controller.system.vo.response.UserVo;
import com.dj.mingkong.common.infrastructure.base.dto.delete.DeleteVo;
import com.dj.mingkong.common.infrastructure.base.dto.page.PageVo;

import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

/**
 * 用户服务接口
 *
 * @author zenglonghui
 * @date: 2022/5/25 18:07
 */
public interface UserService {
    /**
     * 用户登录
     *
     * @param request {}
     * @param loginVo 参数
     * @return String
     */
    String login(HttpServletRequest request, LoginVo loginVo);

    /**
     * 输出验证码图片
     *
     * @param request  请求
     * @param response 返回
     */
    void getVerifyCodeImage(HttpServletRequest request, HttpServletResponse response);

    /**
     * 获取登录的用户详情信息
     *
     * @return UserInfoVo
     */
    UserInfoVo info();

    /**
     * 修改用户数据
     *
     * @param updateVo 参数
     */
    void updateById(UserUpdateVo updateVo);

    /**
     * 删除用户
     *
     * @param deleteVo 参数
     */
    void deleteById(DeleteVo deleteVo);

    /**
     * 分页查询用户列表
     *
     * @param queryVo 参数
     * @return PageVo<UserVo>
     */
    PageVo<UserVo> pageByVo(UserQueryVo queryVo);

}
